<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>v_hdmirxss1: xhdmi_example.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="HTML_custom.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="xlogo_bg.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">v_hdmirxss1
   </div>
   <div id="projectbrief">Vitis Drivers API Documentation</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Overview</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="globals.html"><span>APIs</span></a></li>
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="pages.html"><span>Examples</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('xhdmi__example_8c.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">xhdmi_example.c File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Overview</h2>
<div class="textblock"><p>This file demonstrates how to use Xilinx HDMI TX Subsystem, HDMI RX Subsystem and Video PHY Controller drivers. </p>
<pre>
MODIFICATION HISTORY:</pre><pre>Ver   Who    Date     Changes
             dd/mm/yy
</p>
<hr/>
<p>
1.00  YB     11/05/19 Initial release.
1.01  KU     07/07/20 Support for FrameBuffer
                      Can use FRL on RX and TMDS on TX
                      Video will be clipped if RX resolution in more than
                      4K
                      Support Revision 2 (Pass 4) of OnSemi retimer
                      Menu option updated for EDID and Training based on
                      MaxRate configuration
                      Added support for 16 BPC
1.02  KU     30/11/20 AVI InfoFrame Version set to 3 for resolutions
                        VIC &gt; 127
                        Onsemi redriver tweaked for TMDS mode in TX
1.03  ssh    03/17/21 Added EdidHdmi20_t, PsIic0 and PsIic1 declarations
1.04  ssh    04/20/21 Added support for Dynamic HDR and Versal
1.05    ssh    07/14/21 Added support for Native Video
1.06  KU     30/08/21 RX FRL settings updated for VCU118
1.07  ssh    01/28/22 Updated GT Swing settings for VCK190
1.08  ssh    02/01/22 Updated Enable CTS Conversion Function
1.09    ssh    02/04/22 Added param to support Tx to train at the same rate as Rx
1.10  ssh    03/02/22 Added LCPLL and RPLL config for VCK190 Exdes
1.11    ssh    01/25/23 Added support for VEK280
1.12  ssh    09/14/23 Added Tx compliance values for UltrascalePlus
1.13    ssh    04/07/25 Added support for VEK385</pre><pre></pre> </div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a13f636ef2d93d7ee10e421e5f604a510"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xhdmi__example_8c.html#a13f636ef2d93d7ee10e421e5f604a510">I2cClk</a> (u32 InFreq, u32 OutFreq)</td></tr>
<tr class="memdesc:a13f636ef2d93d7ee10e421e5f604a510"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function setup SI5324 clock generator either in free or locked mode.  <a href="#a13f636ef2d93d7ee10e421e5f604a510">More...</a><br/></td></tr>
<tr class="separator:a13f636ef2d93d7ee10e421e5f604a510"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a14b96491d9e48ad8fadbbb391d097ab6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xhdmi__example_8c.html#a14b96491d9e48ad8fadbbb391d097ab6">Info</a> (void)</td></tr>
<tr class="memdesc:a14b96491d9e48ad8fadbbb391d097ab6"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function outputs the video timing , Audio, Link Status, HDMI RX state of HDMI RX core.  <a href="#a14b96491d9e48ad8fadbbb391d097ab6">More...</a><br/></td></tr>
<tr class="separator:a14b96491d9e48ad8fadbbb391d097ab6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a436465d83bcfb1d90e5983e25dddbfc4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xhdmi__example_8c.html#a436465d83bcfb1d90e5983e25dddbfc4">DetailedInfo</a> (void)</td></tr>
<tr class="memdesc:a436465d83bcfb1d90e5983e25dddbfc4"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function prints additional details of the system for debug purpose.  <a href="#a436465d83bcfb1d90e5983e25dddbfc4">More...</a><br/></td></tr>
<tr class="separator:a436465d83bcfb1d90e5983e25dddbfc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a49f86eb6133d393764f7512a55c8b918"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xhdmi__example_8c.html#a49f86eb6133d393764f7512a55c8b918">Hdmiphy1ErrorCallback</a> (void *CallbackRef)</td></tr>
<tr class="memdesc:a49f86eb6133d393764f7512a55c8b918"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is called whenever an error condition in VPHY occurs.  <a href="#a49f86eb6133d393764f7512a55c8b918">More...</a><br/></td></tr>
<tr class="separator:a49f86eb6133d393764f7512a55c8b918"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00804c9887066c8b73a180344f5c4dbc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xhdmi__example_8c.html#a00804c9887066c8b73a180344f5c4dbc">Hdmiphy1ProcessError</a> (void)</td></tr>
<tr class="memdesc:a00804c9887066c8b73a180344f5c4dbc"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is called in the application to process the pending VPHY errors.  <a href="#a00804c9887066c8b73a180344f5c4dbc">More...</a><br/></td></tr>
<tr class="separator:a00804c9887066c8b73a180344f5c4dbc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7dea4b8299b6f9642a852bfe9f36512c"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xhdmi__example_8c.html#a7dea4b8299b6f9642a852bfe9f36512c">Exdes_SysTmrInitialize</a> (<a class="el" href="struct_x_hdmi___exdes.html">XHdmi_Exdes</a> *InstancePtr, u32 TmrId, u32 TmrIntrId)</td></tr>
<tr class="memdesc:a7dea4b8299b6f9642a852bfe9f36512c"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to initialize the system timer that is used to count and generate given periodic interrupts.  <a href="#a7dea4b8299b6f9642a852bfe9f36512c">More...</a><br/></td></tr>
<tr class="separator:a7dea4b8299b6f9642a852bfe9f36512c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a612937a608699c646da276707e5df28d"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xhdmi__example_8c.html#a612937a608699c646da276707e5df28d">Exdes_UsToTicks</a> (u32 TimeInUs, u32 TmrCtrClkFreq)</td></tr>
<tr class="memdesc:a612937a608699c646da276707e5df28d"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function time specified in Us to ticks for a specified timer frequency.  <a href="#a612937a608699c646da276707e5df28d">More...</a><br/></td></tr>
<tr class="separator:a612937a608699c646da276707e5df28d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa6b596b261b156c7b1735ba0e6bec5a0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xhdmi__example_8c.html#aa6b596b261b156c7b1735ba0e6bec5a0">Exdes_StartSysTmr</a> (<a class="el" href="struct_x_hdmi___exdes.html">XHdmi_Exdes</a> *InstancePtr, u32 IntervalInMs)</td></tr>
<tr class="memdesc:aa6b596b261b156c7b1735ba0e6bec5a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to start a the timer to generate periodic pulses of tmrctr interrupt.  <a href="#aa6b596b261b156c7b1735ba0e6bec5a0">More...</a><br/></td></tr>
<tr class="separator:aa6b596b261b156c7b1735ba0e6bec5a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a121fe619135c1548eefde42b204cda"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xhdmi__example_8c.html#a8a121fe619135c1548eefde42b204cda">Exdes_SysTmrCallback</a> (void *CallbackRef, u8 TmrCtrNumber)</td></tr>
<tr class="memdesc:a8a121fe619135c1548eefde42b204cda"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is set as the callback handler from the timer counter interrupt handler.  <a href="#a8a121fe619135c1548eefde42b204cda">More...</a><br/></td></tr>
<tr class="separator:a8a121fe619135c1548eefde42b204cda"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e110f4be5d9fb0f4860a009daecfc77"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xhdmi__example_8c.html#a3e110f4be5d9fb0f4860a009daecfc77">Exdes_SysTimerIntrHandler</a> (void *CallbackRef)</td></tr>
<tr class="memdesc:a3e110f4be5d9fb0f4860a009daecfc77"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is set as the callback handler from the interrupt controller for the system timer interrupts.  <a href="#a3e110f4be5d9fb0f4860a009daecfc77">More...</a><br/></td></tr>
<tr class="separator:a3e110f4be5d9fb0f4860a009daecfc77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad0589d4f779ed2fc3e57c7c20c3716e2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xhdmi__example_8c.html#ad0589d4f779ed2fc3e57c7c20c3716e2">Exdes_SetDebugPrintf</a> (<a class="el" href="xhdmi__example_8h.html#a6f3b42498c5f531b949e0b795e2c03de">Exdes_Debug_Printf</a> PrintFunc)</td></tr>
<tr class="memdesc:ad0589d4f779ed2fc3e57c7c20c3716e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to enable and additional debugging prints in the applicaiton.  <a href="#ad0589d4f779ed2fc3e57c7c20c3716e2">More...</a><br/></td></tr>
<tr class="separator:ad0589d4f779ed2fc3e57c7c20c3716e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad75e9a1ce78113cef70aa82f3ffe79a6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xhdmi__example_8c.html#ad75e9a1ce78113cef70aa82f3ffe79a6">Exdes_SetAuxFifoDebugPrintf</a> (<a class="el" href="xhdmi__example_8h.html#a6f3b42498c5f531b949e0b795e2c03de">Exdes_Debug_Printf</a> PrintFunc)</td></tr>
<tr class="memdesc:ad75e9a1ce78113cef70aa82f3ffe79a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to enable and additional debugging prints for the Aux Fifo operations in the applicaiton.  <a href="#ad75e9a1ce78113cef70aa82f3ffe79a6">More...</a><br/></td></tr>
<tr class="separator:ad75e9a1ce78113cef70aa82f3ffe79a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ffcc103618c1f81ca24d098541512ff"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xhdmi__example_8c.html#a7ffcc103618c1f81ca24d098541512ff">Exdes_SetHdcpDebugPrintf</a> (<a class="el" href="xhdmi__example_8h.html#a6f3b42498c5f531b949e0b795e2c03de">Exdes_Debug_Printf</a> PrintFunc)</td></tr>
<tr class="memdesc:a7ffcc103618c1f81ca24d098541512ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to enable and additional debugging prints for the HDCP operations in the applicaiton.  <a href="#a7ffcc103618c1f81ca24d098541512ff">More...</a><br/></td></tr>
<tr class="separator:a7ffcc103618c1f81ca24d098541512ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51323d81024622285f0112cc70bad72a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xhdmi__example_8c.html#a51323d81024622285f0112cc70bad72a">Exdes_InitController</a> (<a class="el" href="struct_x_hdmi___exdes.html">XHdmi_Exdes</a> *InstancePtr)</td></tr>
<tr class="memdesc:a51323d81024622285f0112cc70bad72a"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to initialize the example desing controller data strucuture that is used to track the presence and instances of the hdmi 2.1 receiver and transmitter.  <a href="#a51323d81024622285f0112cc70bad72a">More...</a><br/></td></tr>
<tr class="separator:a51323d81024622285f0112cc70bad72a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5bae37b9c9158ce7cb120a28559cfedc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xhdmi__example_8c.html#a5bae37b9c9158ce7cb120a28559cfedc">Exdes_UpdateAuxFifo</a> ()</td></tr>
<tr class="memdesc:a5bae37b9c9158ce7cb120a28559cfedc"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function updates the global array for AUX fifo with the AUX data from the hdmi receiver.  <a href="#a5bae37b9c9158ce7cb120a28559cfedc">More...</a><br/></td></tr>
<tr class="separator:a5bae37b9c9158ce7cb120a28559cfedc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3fc2a7193151393ea8b3fbe195a69ae7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xhdmi__example_8c.html#a3fc2a7193151393ea8b3fbe195a69ae7">Exdes_ReadVRRTimingChange</a> ()</td></tr>
<tr class="memdesc:a3fc2a7193151393ea8b3fbe195a69ae7"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function updates the Reads the VRR Video Timing Values from HDMI RX Receiver.  <a href="#a3fc2a7193151393ea8b3fbe195a69ae7">More...</a><br/></td></tr>
<tr class="separator:a3fc2a7193151393ea8b3fbe195a69ae7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ed4452541674f60a59010ff76834183"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xhdmi__example_8c.html#a7ed4452541674f60a59010ff76834183">Exdes_ProcessVRRTimingChange</a> ()</td></tr>
<tr class="memdesc:a7ed4452541674f60a59010ff76834183"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function updates the Reads the VRR Video Timing Values from HDMI RX Receiver and updates to HDMI TX when VRR Manual Mode is enabled.  <a href="#a7ed4452541674f60a59010ff76834183">More...</a><br/></td></tr>
<tr class="separator:a7ed4452541674f60a59010ff76834183"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a268e0f9857913c259741c0bbd1b86329"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xhdmi__example_8c.html#a268e0f9857913c259741c0bbd1b86329">Exdes_ReadVTEMPacket</a> ()</td></tr>
<tr class="memdesc:a268e0f9857913c259741c0bbd1b86329"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function updates the Reads the VRR VTEM Packet from HDMI RX Receiver.  <a href="#a268e0f9857913c259741c0bbd1b86329">More...</a><br/></td></tr>
<tr class="separator:a268e0f9857913c259741c0bbd1b86329"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aabd5c0e2ac70e11184a457b7d5a4b488"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xhdmi__example_8c.html#aabd5c0e2ac70e11184a457b7d5a4b488">Exdes_ProcessVTEMPacket</a> ()</td></tr>
<tr class="memdesc:aabd5c0e2ac70e11184a457b7d5a4b488"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function updates the R Reads the VRR VTEM Packet from HDMI RX Receiver and updates to HDMI TX.  <a href="#aabd5c0e2ac70e11184a457b7d5a4b488">More...</a><br/></td></tr>
<tr class="separator:aabd5c0e2ac70e11184a457b7d5a4b488"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd642332518889b8d0869e9f0ecec307"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xhdmi__example_8c.html#acd642332518889b8d0869e9f0ecec307">Exdes_CheckforResChange</a> ()</td></tr>
<tr class="memdesc:acd642332518889b8d0869e9f0ecec307"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function checks if there has been a change in resolution on the incoming rx stream.  <a href="#acd642332518889b8d0869e9f0ecec307">More...</a><br/></td></tr>
<tr class="separator:acd642332518889b8d0869e9f0ecec307"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a36c1cdc84fe5db0377211f7640779576"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xhdmi__example_8c.html#a36c1cdc84fe5db0377211f7640779576">I2cMuxSel</a> (void *IicPtr, XOnBoard_IicDev Dev)</td></tr>
<tr class="memdesc:a36c1cdc84fe5db0377211f7640779576"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function setup sets up the On Board IIC MUX to select device.  <a href="#a36c1cdc84fe5db0377211f7640779576">More...</a><br/></td></tr>
<tr class="separator:a36c1cdc84fe5db0377211f7640779576"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4dce91041c96d24627182e29908c4b77"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xhdmi__example_8c.html#a4dce91041c96d24627182e29908c4b77">Xil_AssertCallbackRoutine</a> (u8 *File, s32 Line)</td></tr>
<tr class="memdesc:a4dce91041c96d24627182e29908c4b77"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the callback for assertion error.  <a href="#a4dce91041c96d24627182e29908c4b77">More...</a><br/></td></tr>
<tr class="separator:a4dce91041c96d24627182e29908c4b77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34f9e975538c969562e4d93ddf5a5f63"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xhdmi__example_8c.html#a34f9e975538c969562e4d93ddf5a5f63">Exdes_SetupClkSrc</a> (u32 ps_iic0_deviceid, u32 ps_iic1_deviceid)</td></tr>
<tr class="memdesc:a34f9e975538c969562e4d93ddf5a5f63"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function updates the FrameRate for the current video stream.  <a href="#a34f9e975538c969562e4d93ddf5a5f63">More...</a><br/></td></tr>
<tr class="separator:a34f9e975538c969562e4d93ddf5a5f63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab458f6ff7df970c30ccf4a575995bc7e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xhdmi__example_8c.html#ab458f6ff7df970c30ccf4a575995bc7e">SetupInterruptSystem</a> (void)</td></tr>
<tr class="memdesc:ab458f6ff7df970c30ccf4a575995bc7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function setups the interrupt system so interrupts can occur for the HDMI cores.  <a href="#ab458f6ff7df970c30ccf4a575995bc7e">More...</a><br/></td></tr>
<tr class="separator:ab458f6ff7df970c30ccf4a575995bc7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xhdmi__example_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
<tr class="memdesc:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Main function to call example with HDMI TX, HDMI RX and HDMI GT drivers.  <a href="#ae66f6b31b5ad750f1fe042a706a4e3d4">More...</a><br/></td></tr>
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a436465d83bcfb1d90e5983e25dddbfc4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DetailedInfo </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function prints additional details of the system for debug purpose. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">None.</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="struct_x_v___hdmi_rx_ss1.html#a51fe864b06a7b80a949a9c65d0f8ec54">XV_HdmiRxSs1::HdmiRx1Ptr</a>, <a class="el" href="xv__hdmirxss1_8c.html#a34b196de94d11c60b63ab0c1516dc8d9">XV_HdmiRxSs1_DebugInfo()</a>, <a class="el" href="xv__hdmirxss1_8c.html#ad1be5f12554c551e46983d3c76a49628">XV_HdmiRxSs1_ReportCoreInfo()</a>, and <a class="el" href="xv__hdmirxss1_8c.html#ac768cfd3f84a876cf88f8571f56a142f">XV_HdmiRxSs1_ReportSubcoreVersion()</a>.</p>

</div>
</div>
<a class="anchor" id="acd642332518889b8d0869e9f0ecec307"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 Exdes_CheckforResChange </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function checks if there has been a change in resolution on the incoming rx stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">None.</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd></dd></dl>

<p>References <a class="el" href="struct_x_v___hdmi_rx_ss1.html#ae2e59b873333460b829f0a71082d017a">XV_HdmiRxSs1::IsStreamConnected</a>, <a class="el" href="struct_x_hdmi___exdes.html#adb6a6b5c0e1261022b42c62f78c38318">XHdmi_Exdes::TxStartTransmit</a>, and <a class="el" href="xv__hdmirxss1_8c.html#a3c9b009c2f1a32884f31b91fda02d93a">XV_HdmiRxSs1_VRST()</a>.</p>

</div>
</div>
<a class="anchor" id="a51323d81024622285f0112cc70bad72a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Exdes_InitController </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_x_hdmi___exdes.html">XHdmi_Exdes</a> *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is used to initialize the example desing controller data strucuture that is used to track the presence and instances of the hdmi 2.1 receiver and transmitter. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is the instance of the example design handle data structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd></dd></dl>

<p>References <a class="el" href="xhdmi__example_8c.html#ad75e9a1ce78113cef70aa82f3ffe79a6">Exdes_SetAuxFifoDebugPrintf()</a>, <a class="el" href="xhdmi__example_8c.html#ad0589d4f779ed2fc3e57c7c20c3716e2">Exdes_SetDebugPrintf()</a>, <a class="el" href="xhdmi__example_8c.html#a7ffcc103618c1f81ca24d098541512ff">Exdes_SetHdcpDebugPrintf()</a>, <a class="el" href="struct_x_hdmi___exdes.html#a81adb98bd3dc8068bdc274e190212f8c">XHdmi_Exdes::IsRxPresent</a>, <a class="el" href="struct_x_hdmi___exdes.html#a36b215857be51d20dc17ed649d2e7e2a">XHdmi_Exdes::IsTxPresent</a>, <a class="el" href="struct_x_hdmi___exdes.html#a99759cfe3592a22b91afcf9535b76c14">XHdmi_Exdes::SystemEvent</a>, and <a class="el" href="struct_x_hdmi___exdes.html#adb6a6b5c0e1261022b42c62f78c38318">XHdmi_Exdes::TxStartTransmit</a>.</p>

<p>Referenced by <a class="el" href="xhdmi__example_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main()</a>.</p>

</div>
</div>
<a class="anchor" id="a7ed4452541674f60a59010ff76834183"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Exdes_ProcessVRRTimingChange </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function updates the Reads the VRR Video Timing Values from HDMI RX Receiver and updates to HDMI TX when VRR Manual Mode is enabled. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">None.</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd></dd></dl>

<p>References <a class="el" href="xv__hdmirxss1_8c.html#ae1602e2606cfc7d343dbdd547fec91d4">XV_HdmiRxSs1_GetVideoStream()</a>.</p>

<p>Referenced by <a class="el" href="xhdmi__example_8c.html#aabd5c0e2ac70e11184a457b7d5a4b488">Exdes_ProcessVTEMPacket()</a>, and <a class="el" href="xhdmi__example_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main()</a>.</p>

</div>
</div>
<a class="anchor" id="aabd5c0e2ac70e11184a457b7d5a4b488"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Exdes_ProcessVTEMPacket </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function updates the R Reads the VRR VTEM Packet from HDMI RX Receiver and updates to HDMI TX. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">None.</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd></dd></dl>

<p>References <a class="el" href="xhdmi__example_8c.html#a7ed4452541674f60a59010ff76834183">Exdes_ProcessVRRTimingChange()</a>, and <a class="el" href="xv__hdmirxss1_8c.html#ad255644b4621f85786c183cac9f5d129">XV_HdmiRxSs1_GetVrrIf()</a>.</p>

</div>
</div>
<a class="anchor" id="a3fc2a7193151393ea8b3fbe195a69ae7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Exdes_ReadVRRTimingChange </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function updates the Reads the VRR Video Timing Values from HDMI RX Receiver. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">None.</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd></dd></dl>

</div>
</div>
<a class="anchor" id="a268e0f9857913c259741c0bbd1b86329"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Exdes_ReadVTEMPacket </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function updates the Reads the VRR VTEM Packet from HDMI RX Receiver. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">None.</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd></dd></dl>

<p>References <a class="el" href="xv__hdmirxss1_8c.html#ad255644b4621f85786c183cac9f5d129">XV_HdmiRxSs1_GetVrrIf()</a>.</p>

</div>
</div>
<a class="anchor" id="ad75e9a1ce78113cef70aa82f3ffe79a6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Exdes_SetAuxFifoDebugPrintf </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="xhdmi__example_8h.html#a6f3b42498c5f531b949e0b795e2c03de">Exdes_Debug_Printf</a>&#160;</td>
          <td class="paramname"><em>PrintFunc</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is used to enable and additional debugging prints for the Aux Fifo operations in the applicaiton. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Printfunc</td><td>is the function to enable printing.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd></dd></dl>

<p>Referenced by <a class="el" href="xhdmi__example_8c.html#a51323d81024622285f0112cc70bad72a">Exdes_InitController()</a>.</p>

</div>
</div>
<a class="anchor" id="ad0589d4f779ed2fc3e57c7c20c3716e2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Exdes_SetDebugPrintf </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="xhdmi__example_8h.html#a6f3b42498c5f531b949e0b795e2c03de">Exdes_Debug_Printf</a>&#160;</td>
          <td class="paramname"><em>PrintFunc</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is used to enable and additional debugging prints in the applicaiton. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Printfunc</td><td>is the function to enable printing.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd></dd></dl>

<p>Referenced by <a class="el" href="xhdmi__example_8c.html#a51323d81024622285f0112cc70bad72a">Exdes_InitController()</a>.</p>

</div>
</div>
<a class="anchor" id="a7ffcc103618c1f81ca24d098541512ff"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Exdes_SetHdcpDebugPrintf </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="xhdmi__example_8h.html#a6f3b42498c5f531b949e0b795e2c03de">Exdes_Debug_Printf</a>&#160;</td>
          <td class="paramname"><em>PrintFunc</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is used to enable and additional debugging prints for the HDCP operations in the applicaiton. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Printfunc</td><td>is the function to enable printing.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd></dd></dl>

<p>Referenced by <a class="el" href="xhdmi__example_8c.html#a51323d81024622285f0112cc70bad72a">Exdes_InitController()</a>.</p>

</div>
</div>
<a class="anchor" id="a34f9e975538c969562e4d93ddf5a5f63"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 Exdes_SetupClkSrc </td>
          <td>(</td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>ps_iic0_deviceid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>ps_iic1_deviceid</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function updates the FrameRate for the current video stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ps_iic0_deviceid</td><td>is the device id of the ps iic device. </td></tr>
    <tr><td class="paramname">ps_iic1_deviceid</td><td>is the device id of the ps iic device.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>XST_SUCCESS if the clock source is successfuly set. XST_FAILURE otherwise.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="xhdmi__example_8c.html#a36c1cdc84fe5db0377211f7640779576">I2cMuxSel()</a>, <a class="el" href="xhdmi__example_8h.html#a237cda4b895b62ed3dab36dc63ddac4f">RC21008A_ADDR</a>, and <a class="el" href="si570drv_8c.html#aafcd3aacee14d0c6d6101785a45be0d3">Si570_SetFreq()</a>.</p>

<p>Referenced by <a class="el" href="xhdmi__example_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main()</a>.</p>

</div>
</div>
<a class="anchor" id="aa6b596b261b156c7b1735ba0e6bec5a0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Exdes_StartSysTmr </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_x_hdmi___exdes.html">XHdmi_Exdes</a> *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>IntervalInMs</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is used to start a the timer to generate periodic pulses of tmrctr interrupt. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the example design handler. </td></tr>
    <tr><td class="paramname">IntervalInMs</td><td>is the user specified period for the timer pulses.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="xhdmi__example_8c.html#a8a121fe619135c1548eefde42b204cda">Exdes_SysTmrCallback()</a>, <a class="el" href="xhdmi__example_8c.html#a612937a608699c646da276707e5df28d">Exdes_UsToTicks()</a>, <a class="el" href="struct_x_hdmi___exdes.html#a78c708ff1765685768d0ee54b591e10a">XHdmi_Exdes::SysTmrInst</a>, and <a class="el" href="struct_x_hdmi___exdes.html#a894a925f3281d179bdcf9ffcc5e7e074">XHdmi_Exdes::SysTmrPulseIntervalinMs</a>.</p>

<p>Referenced by <a class="el" href="xhdmi__example_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main()</a>.</p>

</div>
</div>
<a class="anchor" id="a3e110f4be5d9fb0f4860a009daecfc77"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Exdes_SysTimerIntrHandler </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>CallbackRef</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is set as the callback handler from the interrupt controller for the system timer interrupts. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is the callback reference.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="struct_x_hdmi___exdes.html#a78c708ff1765685768d0ee54b591e10a">XHdmi_Exdes::SysTmrInst</a>.</p>

<p>Referenced by <a class="el" href="xhdmi__example_8c.html#a7dea4b8299b6f9642a852bfe9f36512c">Exdes_SysTmrInitialize()</a>.</p>

</div>
</div>
<a class="anchor" id="a8a121fe619135c1548eefde42b204cda"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Exdes_SysTmrCallback </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>CallbackRef</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>TmrCtrNumber</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is set as the callback handler from the timer counter interrupt handler. </p>
<p>The counters that are used in the application for timer based control and exclusion are be handled in the this function.</p>
<p>The user needs to modify this callback to set the counters and exclusion flags based on the pulse counts in the pulse train generated by the system timer.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">CallbackRef</td><td>is the function callback reference. </td></tr>
    <tr><td class="paramname">TmrCtrNumber</td><td>is the timer counter number.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>Referenced by <a class="el" href="xhdmi__example_8c.html#aa6b596b261b156c7b1735ba0e6bec5a0">Exdes_StartSysTmr()</a>.</p>

</div>
</div>
<a class="anchor" id="a7dea4b8299b6f9642a852bfe9f36512c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 Exdes_SysTmrInitialize </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_x_hdmi___exdes.html">XHdmi_Exdes</a> *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>TmrId</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>TmrIntrId</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is used to initialize the system timer that is used to count and generate given periodic interrupts. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the example design handler </td></tr>
    <tr><td class="paramname">TmrId</td><td>is the device id of the system timer </td></tr>
    <tr><td class="paramname">TmrIntrId</td><td>is the interrupt vector id of the system timer</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>XST_SUCCESS if successful.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="xhdmi__example_8c.html#a3e110f4be5d9fb0f4860a009daecfc77">Exdes_SysTimerIntrHandler()</a>, and <a class="el" href="struct_x_hdmi___exdes.html#a78c708ff1765685768d0ee54b591e10a">XHdmi_Exdes::SysTmrInst</a>.</p>

<p>Referenced by <a class="el" href="xhdmi__example_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main()</a>.</p>

</div>
</div>
<a class="anchor" id="a5bae37b9c9158ce7cb120a28559cfedc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Exdes_UpdateAuxFifo </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function updates the global array for AUX fifo with the AUX data from the hdmi receiver. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">None.</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd></dd></dl>

<p>References <a class="el" href="xv__hdmirxss1_8c.html#a8314656c11e6dccbbc6b535a649d4f9a">XV_HdmiRxSs1_GetAuxiliary()</a>.</p>

</div>
</div>
<a class="anchor" id="a612937a608699c646da276707e5df28d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 Exdes_UsToTicks </td>
          <td>(</td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>TimeInUs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>TmrCtrClkFreq</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function time specified in Us to ticks for a specified timer frequency. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">TimeInUs</td><td>is the time in microseconds. </td></tr>
    <tr><td class="paramname">TmrCtrClkFreq</td><td>is the frequency of the clock to be used for counting the ticks.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Number of ticks.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>Referenced by <a class="el" href="xhdmi__example_8c.html#aa6b596b261b156c7b1735ba0e6bec5a0">Exdes_StartSysTmr()</a>.</p>

</div>
</div>
<a class="anchor" id="a49f86eb6133d393764f7512a55c8b918"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Hdmiphy1ErrorCallback </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>CallbackRef</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is called whenever an error condition in VPHY occurs. </p>
<p>This will fill the FIFO of VPHY error events which will be processed outside the ISR.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">CallbackRef</td><td>is the VPHY instance pointer </td></tr>
    <tr><td class="paramname">ErrIrqType</td><td>is the VPHY error type</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>Referenced by <a class="el" href="xhdmi__example_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main()</a>.</p>

</div>
</div>
<a class="anchor" id="a00804c9887066c8b73a180344f5c4dbc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Hdmiphy1ProcessError </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is called in the application to process the pending VPHY errors. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">None.</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This function can be expanded to perform necessary actions depending on the error type. For example, XHDMIPHY1_ERR_PLL_LAYOUT can be used to automatically switch in and out of bonded mode for GTXE2 devices </dd></dl>

<p>Referenced by <a class="el" href="xhdmi__example_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main()</a>.</p>

</div>
</div>
<a class="anchor" id="a13f636ef2d93d7ee10e421e5f604a510"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int I2cClk </td>
          <td>(</td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>InFreq</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>OutFreq</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function setup SI5324 clock generator either in free or locked mode. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Index</td><td>specifies an index for selecting mode frequency. </td></tr>
    <tr><td class="paramname">Mode</td><td>specifies either free or locked mode.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>Zero if error in programming external clock.</li>
<li>One if programmed external clock.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="xhdmi__example_8h.html#a71bd0b63917e21a117972939353bda39">I2C_CLK_ADDR</a>, <a class="el" href="xhdmi__example_8h.html#ac6103f02c31a61688e475e57b81ca2eb">I2C_CLK_ADDR1</a>, and <a class="el" href="group___i_d_t__8_t49_n24x.html#gacc5465ba335d0d30c552186a903c875d">IDT_8T49N24x_I2cClk()</a>.</p>

<p>Referenced by <a class="el" href="xhdmi__example_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main()</a>.</p>

</div>
</div>
<a class="anchor" id="a36c1cdc84fe5db0377211f7640779576"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int I2cMuxSel </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>IicPtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">XOnBoard_IicDev&#160;</td>
          <td class="paramname"><em>Dev</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function setup sets up the On Board IIC MUX to select device. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">None.</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The number of bytes sent.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>Referenced by <a class="el" href="xhdmi__example_8c.html#a34f9e975538c969562e4d93ddf5a5f63">Exdes_SetupClkSrc()</a>.</p>

</div>
</div>
<a class="anchor" id="a14b96491d9e48ad8fadbbb391d097ab6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Info </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function outputs the video timing , Audio, Link Status, HDMI RX state of HDMI RX core. </p>
<p>In addition, it also prints information about HDMI TX, and HDMI GT cores.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">None.</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="struct_x_v___hdmi_rx_ss1.html#a0b53d035f6c5376776e541443bfe26f2">XV_HdmiRxSs1::EnableHDCPLogging</a>, <a class="el" href="xv__hdmirxss1_8c.html#a59fe7994fe271ece2db726f2ba3ce146">XV_HdmiRxSs1_ReportAudio()</a>, <a class="el" href="xv__hdmirxss1_8c.html#a0d75cf52d65565585e301d7b61dba3dd">XV_HdmiRxSs1_ReportDRMInfo()</a>, <a class="el" href="xv__hdmirxss1_8c.html#ac69293c91dde2e6c870efd3519a5e045">XV_HdmiRxSs1_ReportLinkQuality()</a>, and <a class="el" href="xv__hdmirxss1_8c.html#af817b5a4f80a2fc4e5ac1b0e1cebf9da">XV_HdmiRxSs1_ReportTiming()</a>.</p>

</div>
</div>
<a class="anchor" id="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int main </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Main function to call example with HDMI TX, HDMI RX and HDMI GT drivers. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">None.</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if HDMI example was successfully.</li>
<li>XST_FAILURE if HDMI example failed.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>
<p>Setup IIC devices and clock sources.</p>
<p>Load the HDCP keys.</p>
<p>Initialize the Audio Generator.</p>
<p>Initialize the Interrupt Controller.</p>
<p>Initialize the HDMI Video Transmitter "state machine" functionality and the downstream HDCP device.</p>
<p>Initialize the HDMI Video Receiver "state machine" functionality and the downstream HDCP device.</p>
<p>Set the Video Phy Error callbacks.</p>
<p>Initialize the controller for the example design mode.</p>
<p>Initialize the TPG and associated GPIO to reset the TPG.</p>

<p>References <a class="el" href="xhdmi__example_8c.html#a51323d81024622285f0112cc70bad72a">Exdes_InitController()</a>, <a class="el" href="xhdmi__example_8c.html#a7ed4452541674f60a59010ff76834183">Exdes_ProcessVRRTimingChange()</a>, <a class="el" href="xhdmi__example_8c.html#a34f9e975538c969562e4d93ddf5a5f63">Exdes_SetupClkSrc()</a>, <a class="el" href="xhdmi__example_8c.html#aa6b596b261b156c7b1735ba0e6bec5a0">Exdes_StartSysTmr()</a>, <a class="el" href="xhdmi__example_8c.html#a7dea4b8299b6f9642a852bfe9f36512c">Exdes_SysTmrInitialize()</a>, <a class="el" href="struct_x_hdmi___exdes.html#af57a8d66a84be2be093f78cc9203db6d">XHdmi_Exdes::ForceIndependent</a>, <a class="el" href="xhdmi__example_8c.html#a49f86eb6133d393764f7512a55c8b918">Hdmiphy1ErrorCallback()</a>, <a class="el" href="xhdmi__example_8c.html#a00804c9887066c8b73a180344f5c4dbc">Hdmiphy1ProcessError()</a>, <a class="el" href="xhdmi__example_8c.html#a13f636ef2d93d7ee10e421e5f604a510">I2cClk()</a>, <a class="el" href="struct_x_vfmc.html#a2e542a34afc33792f5d9c0b7cea10728">XVfmc::IicPtr</a>, <a class="el" href="struct_x_hdmi___exdes.html#a81adb98bd3dc8068bdc274e190212f8c">XHdmi_Exdes::IsRxPresent</a>, <a class="el" href="struct_x_hdmi___exdes.html#a36b215857be51d20dc17ed649d2e7e2a">XHdmi_Exdes::IsTxPresent</a>, <a class="el" href="struct_x_vfmc.html#a353d96b482245f6bf2b3f28bac16747d">XVfmc::Loc</a>, <a class="el" href="xhdmi__example_8c.html#ab458f6ff7df970c30ccf4a575995bc7e">SetupInterruptSystem()</a>, <a class="el" href="struct_x_hdmi___exdes.html#a99759cfe3592a22b91afcf9535b76c14">XHdmi_Exdes::SystemEvent</a>, <a class="el" href="struct_x_hdmi___exdes.html#add4251825a6a4d52f92bbdc87d005b26">XHdmi_Exdes::TxBusy</a>, <a class="el" href="struct_x_hdmi___exdes.html#adb6a6b5c0e1261022b42c62f78c38318">XHdmi_Exdes::TxStartTransmit</a>, <a class="el" href="xhdmi__menu_8c.html#a886549f4c5a89353a3dd7e563758d439">XHdmi_MenuInitialize()</a>, <a class="el" href="xhdmi__menu_8c.html#aef0c77222dd933d65ac89908b7791f34">XHdmi_MenuProcess()</a>, <a class="el" href="xhdmi__example_8c.html#a4dce91041c96d24627182e29908c4b77">Xil_AssertCallbackRoutine()</a>, <a class="el" href="xv__hdmirxss1_8c.html#aa3c4292a7e63691e8d096746c61c79e5">XV_HdmiRxSs1_DynHDR_SetAddr()</a>, <a class="el" href="xv__hdmirxss1_8c.html#ae1602e2606cfc7d343dbdd547fec91d4">XV_HdmiRxSs1_GetVideoStream()</a>, <a class="el" href="xv__hdmirxss1_8c.html#ad255644b4621f85786c183cac9f5d129">XV_HdmiRxSs1_GetVrrIf()</a>, and <a class="el" href="xv__hdmirxss1_8c.html#aa385d7305e57a116d118fd8a94f2da7a">XV_HdmiRxSs1_Start()</a>.</p>

</div>
</div>
<a class="anchor" id="ab458f6ff7df970c30ccf4a575995bc7e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int SetupInterruptSystem </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function setups the interrupt system so interrupts can occur for the HDMI cores. </p>
<p>The function is application-specific since the actual system may or may not have an interrupt controller. The HDMI cores could be directly connected to a processor without an interrupt controller. The user should modify this function to fit the application.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">None.</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if interrupt setup was successful.</li>
<li>A specific error code defined in "xstatus.h" if an error occurs.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This function assumes a Microblaze system and no operating system is used. </dd></dl>

<p>Referenced by <a class="el" href="xhdmi__example_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main()</a>.</p>

</div>
</div>
<a class="anchor" id="a4dce91041c96d24627182e29908c4b77"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Xil_AssertCallbackRoutine </td>
          <td>(</td>
          <td class="paramtype">u8 *&#160;</td>
          <td class="paramname"><em>File</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">s32&#160;</td>
          <td class="paramname"><em>Line</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This is the callback for assertion error. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">File</td><td>is string name of the file where the assertion failure occured. </td></tr>
    <tr><td class="paramname">LIne</td><td>is the line wheer the assertion failure occured.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>Referenced by <a class="el" href="xhdmi__example_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main()</a>.</p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
	<p class="footer">&copy; Copyright 2015-2022 Xilinx, Inc. All Rights Reserved.</p>
	<p class="footer">&copy; Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved.</p>
</div>
</body>
</html>
